package com.ftg.learn.framework.mybatis.mybatisinterface;

import com.ftg.learn.framework.mybatis.mybatisinterface.entity.StudentEntity;
import com.ftg.learn.framework.mybatis.mybatisinterface.mapper.StudentMapper;
import com.ftg.learn.framework.mybatis.mybatisinterface.service.StudentServise;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 *
 * 注解开发模式，接口+注解
 *
 * @author lijiaxin
 * @version 1.0
 * @date 2023/9/1 10:18
 */

public class Demo2 {

//    private final String resource = "mybatis.xml";
//
//    //从工厂生成的实例当中找到StudentMapper的实例给你返回
//
//    StudentMapper sm = getSqlSession().getMapper(StudentMapper.class);
//    /**
//     * 封装一个方法 用来返回 sqlsession
//     *
//     * @return sqlsession
//     */
//
//    public SqlSession getSqlSession() {
//        InputStream inputStream = null;
//        try {
//            //把mybatisconfiguration里面的信息读取到java里面
//            inputStream = Resources.getResourceAsStream(resource);
//
//            //建造者模式  [把xml里面的文本信息读取java并为大量的java类完成初始化赋値]
//            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//            SqlSessionFactory sqlSessionFactory = builder.build(inputStream);
//            //把你想要处理的mapper存储到factory
//            sqlSessionFactory.getConfiguration().addMapper(StudentMapper.class);
//
//            SqlSession ss = sqlSessionFactory.openSession(true);
//            return ss;
//        } catch (IOException e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    /**
//     * 用来调用mapper里面的查询全部
//     */
//    public List<Map<String,Object>> tel(){
//        //动态代理 把自动给接口生成一个作为实例
//
//        return sm.showAll();
//    }
//
//    public int add(String stu_name,String  stu_sex){
//        SqlSession ss=getSqlSession();
//        int n=0;
//        try{
//            n=sm.addStudent(stu_name,stu_sex);
//            ss.commit();
//        }
//        catch (Exception e){
//            ss.rollback();
//        }
//        return n;
//    }
//
//    public int modify(int id,String stu_name){
//        SqlSession ss=getSqlSession();
//        int n=0;
//        try{
//            n=sm.modifyStudent(stu_name,id);
//            ss.commit();
//        }
//        catch (Exception e){
//            ss.rollback();
//        }
//        return n;
//    }
//
//    public int out(int id){
//        SqlSession ss=getSqlSession();
//        int n=0;
//        try{
//            n=sm.outStudent(id);
//            ss.commit();
//        }
//        catch (Exception e){
//            ss.rollback();
//        }
//        return n;
//    }


    public static void main(String[] args) {

//        Demo2 demo2=new Demo2();
//        demo2.tel().forEach(System.out::println);

//        int add=demo2.add("admin","男");
//        System.out.println(add);

//        int modify=demo2.modify(106,"admin1");
//        System.out.println(modify);

//        int out =demo2.out(106);
//        System.out.println(out);
        StudentServise studentService = new StudentServise();

        StudentEntity li = studentService.findOne("li");
        System.out.println(li);
//        StudentEntity se=new StudentEntity();
//        se.setId(106);
//        se.setStu_name("xx");
//        se.setStu_sex("女");
//        int n=studentService.updateStu(se,105);
//        System.out.println(n);

//        List<StudentEntity> studentEntities = studentService.showAll1();
//        System.out.println(studentEntities);


        StudentEntity se1=new StudentEntity();
        se1.setStu_name("li");
        se1.setStu_sex("女");
        int n= studentService.insertStu(se1);
        System.out.println(n);

//        int n= studentService.insertStu("丽丽","女");
//        System.out.println(n);

//        int n= studentService.deleteStu(107);
//        System.out.println(n);
    }
}
